﻿// 204 排队买票.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <deque>

using namespace std;
/*
http://oj.daimayuan.top/course/7/problem/416

有 n个人在排队买票，初始他们的顺序为 1到 n。

给你一个数组 a[1],a[2],...,a[n]， 其中第 i个人想要买 a[i]张票。
每一秒，位于队列头的人可以买一张票。如果这次买完了所有他需要的票，他就会离开；否则，他会来到队伍末尾继续排队。
现在给出所有人需要的票数，需要你求出每个人买完票的时间。（第一个人买完第一张票算作第一秒）。

输入格式
第一行一个整数 n。

接下来一行 n个整数表示 a[1],a[2],...,a[n]。

输出格式
输出 n个数，第 i个数表示第 i个人买完票的时间。

样例输入
4
3 4 2 1
样例输出
8 10 7 4
数据规模
对于所有数据，保证 1≤n≤1000, 1≤a[i]≤1000。
*/

struct Buy {
	int id;
	int ticket;
};

int n;
deque<struct Buy> deq;
int ans[1010];

int main()
{
	cin >> n;
	for (int i = 0; i < n; i++) {
		struct Buy t; t.id = i; cin >> t.ticket;
		deq.push_back(t);
	}
	int time = 0;
	while (!deq.empty()) {
		auto t = deq.front(); deq.pop_front();
		t.ticket--; time++;
		if (t.ticket == 0) {
			ans[t.id] = time;
		}
		else {
			deq.push_back(t);
		}
	}

	for (int i = 0; i < n; i++) {
		cout << ans[i] << " ";
	}

	return 0;
}

 